#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>

typedef int LTDatatype;

typedef struct LTistNode
{
	struct LTistNode* next;
	struct LTistNode* prev;
	LTDatatype data;
}LTNode;

//动态开辟一个节点
LTNode* BuyNewNode(LTDatatype x);

//链表初始化
LTNode* LTInit();

//销毁链表
void LTDestroy(LTNode* phead);

//打印链表
void LTPrint(LTNode* phead);

//尾插
void LTPushBack(LTNode* phead, LTDatatype x);

//尾删
void LTPopBack(LTNode* phead);

//判断是否为空链表
bool LTEmpty(LTNode* phead);

//头插
void LTPushFront(LTNode* phead, LTDatatype x);

//头删
void LTPopFront(LTNode* phead);

//查找
LTNode* LTFind(LTNode* phead, LTDatatype x);

//在指定位置pos之前插入
void LTInsert(LTNode* pos, LTDatatype x);

//在指定位置pos删除
void LTErase(LTNode* pos);


